Micron Document
🎖️GitЯра🎖️


Displaying Rendered • View rawDownload

feature/wifi-provision/README.md renovate/actions-setup-java-5.x (f17e586c) Text, 3.22 KB

T383838:feature:wifi-provision

Module dependency graph

<!--region graph-->
T282828
Te6edf3graph Te6edf3TB
Tb4b4b4:Te6edf3featureTb4b4b4:Te6edf3wifiTff7b72-Te6edf3provisionTb4b4b4[Te6edf3wifiTff7b72-Te6edf3provisionTb4b4b4]Tff7b72::Tb4b4b4:Te6edf3kmpTff7b72-Te6edf3feature

Te6edf3classDef Te6edf3androidTff7b72-Te6edf3application Te6edf3fillTb4b4b4:#Te6edf3CAFFBFTb4b4b4,Te6edf3strokeTb4b4b4:#T79c0ff000Tb4b4b4,Te6edf3strokeTff7b72-Te6edf3widthTb4b4b4:T79c0ff2Te6edf3pxTb4b4b4,Te6edf3colorTb4b4b4:#T79c0ff000Tb4b4b4;
Te6edf3classDef Te6edf3androidTff7b72-Te6edf3applicationTff7b72-Te6edf3compose Te6edf3fillTb4b4b4:#Te6edf3CAFFBFTb4b4b4,Te6edf3strokeTb4b4b4:#T79c0ff000Tb4b4b4,Te6edf3strokeTff7b72-Te6edf3widthTb4b4b4:T79c0ff2Te6edf3pxTb4b4b4,Te6edf3colorTb4b4b4:#T79c0ff000Tb4b4b4;
Te6edf3classDef Te6edf3composeTff7b72-Te6edf3desktopTff7b72-Te6edf3application Te6edf3fillTb4b4b4:#Te6edf3CAFFBFTb4b4b4,Te6edf3strokeTb4b4b4:#T79c0ff000Tb4b4b4,Te6edf3strokeTff7b72-Te6edf3widthTb4b4b4:T79c0ff2Te6edf3pxTb4b4b4,Te6edf3colorTb4b4b4:#T79c0ff000Tb4b4b4;
Te6edf3classDef Te6edf3androidTff7b72-Te6edf3feature Te6edf3fillTb4b4b4:#Te6edf3FFD6A5Tb4b4b4,Te6edf3strokeTb4b4b4:#T79c0ff000Tb4b4b4,Te6edf3strokeTff7b72-Te6edf3widthTb4b4b4:T79c0ff2Te6edf3pxTb4b4b4,Te6edf3colorTb4b4b4:#T79c0ff000Tb4b4b4;
Te6edf3classDef Te6edf3androidTff7b72-Tff7b72library Te6edf3fillTb4b4b4:#T79c0ff9Te6edf3BF6FFTb4b4b4,Te6edf3strokeTb4b4b4:#T79c0ff000Tb4b4b4,Te6edf3strokeTff7b72-Te6edf3widthTb4b4b4:T79c0ff2Te6edf3pxTb4b4b4,Te6edf3colorTb4b4b4:#T79c0ff000Tb4b4b4;
Te6edf3classDef Te6edf3androidTff7b72-Tff7b72libraryTff7b72-Te6edf3compose Te6edf3fillTb4b4b4:#T79c0ff9Te6edf3BF6FFTb4b4b4,Te6edf3strokeTb4b4b4:#T79c0ff000Tb4b4b4,Te6edf3strokeTff7b72-Te6edf3widthTb4b4b4:T79c0ff2Te6edf3pxTb4b4b4,Te6edf3colorTb4b4b4:#T79c0ff000Tb4b4b4;
Te6edf3classDef Te6edf3androidTff7b72-Te6edf3test Te6edf3fillTb4b4b4:#Te6edf3A0C4FFTb4b4b4,Te6edf3strokeTb4b4b4:#T79c0ff000Tb4b4b4,Te6edf3strokeTff7b72-Te6edf3widthTb4b4b4:T79c0ff2Te6edf3pxTb4b4b4,Te6edf3colorTb4b4b4:#T79c0ff000Tb4b4b4;
Te6edf3classDef Te6edf3jvmTff7b72-Tff7b72library Te6edf3fillTb4b4b4:#Te6edf3BDB2FFTb4b4b4,Te6edf3strokeTb4b4b4:#T79c0ff000Tb4b4b4,Te6edf3strokeTff7b72-Te6edf3widthTb4b4b4:T79c0ff2Te6edf3pxTb4b4b4,Te6edf3colorTb4b4b4:#T79c0ff000Tb4b4b4;
Te6edf3classDef Te6edf3kmpTff7b72-Te6edf3feature Te6edf3fillTb4b4b4:#Te6edf3FFD6A5Tb4b4b4,Te6edf3strokeTb4b4b4:#T79c0ff000Tb4b4b4,Te6edf3strokeTff7b72-Te6edf3widthTb4b4b4:T79c0ff2Te6edf3pxTb4b4b4,Te6edf3colorTb4b4b4:#T79c0ff000Tb4b4b4;
Te6edf3classDef Te6edf3kmpTff7b72-Tff7b72libraryTff7b72-Te6edf3compose Te6edf3fillTb4b4b4:#Te6edf3FFC1CCTb4b4b4,Te6edf3strokeTb4b4b4:#T79c0ff000Tb4b4b4,Te6edf3strokeTff7b72-Te6edf3widthTb4b4b4:T79c0ff2Te6edf3pxTb4b4b4,Te6edf3colorTb4b4b4:#T79c0ff000Tb4b4b4;
Te6edf3classDef Te6edf3kmpTff7b72-Tff7b72library Te6edf3fillTb4b4b4:#Te6edf3FFC1CCTb4b4b4,Te6edf3strokeTb4b4b4:#T79c0ff000Tb4b4b4,Te6edf3strokeTff7b72-Te6edf3widthTb4b4b4:T79c0ff2Te6edf3pxTb4b4b4,Te6edf3colorTb4b4b4:#T79c0ff000Tb4b4b4;
Te6edf3classDef Te6edf3unknown Te6edf3fillTb4b4b4:#Te6edf3FFADADTb4b4b4,Te6edf3strokeTb4b4b4:#T79c0ff000Tb4b4b4,Te6edf3strokeTff7b72-Te6edf3widthTb4b4b4:T79c0ff2Te6edf3pxTb4b4b4,Te6edf3colorTb4b4b4:#T79c0ff000Tb4b4b4;


<!--endregion-->

WiFi Provisioning System — for mPWRD-OS

The T383838:feature:wifi-provision module provides BLE-based WiFi provisioning for mPWRD-OS devices using the Nymea network manager protocol. mPWRD-OS is a community project that combines Armbian and Meshtastic for Linux-native mesh networking hardware. This module scans for provisioning-capable devices, retrieves available WiFi networks, and applies credentials — all over BLE via the Kable multiplatform library.

Architecture

Protocol: Nymea BLE network manager (GATT service T383838e081fec0-f757-4449-b9c9-bfa83133f7fc)
Transport: BLE via T383838core:ble Kable abstractions with chunked packet codec
UI: Single-screen Material 3 Expressive flow with 6 phases (Idle, ConnectingBle, DeviceFound, LoadingNetworks, Connected, Provisioning)

T282828
Te6edf3sequenceDiagram
Te6edf3participant Te6edf3App Tff7b72as Te6edf3Meshtastic Te6edf3App
Te6edf3participant Te6edf3BLE Tff7b72as Te6edf3BLE Te6edf3Scanner
Te6edf3participant Te6edf3Device Tff7b72as Te6edf3Provisioning Te6edf3Device

Te6edf3Note Te6edf3over Te6edf3AppTff7b72: Te6edf3Phase T79c0ff1Tff7b72: Tff7b72Scan
Te6edf3AppTff7b72->>Te6edf3BLETff7b72: Tff7b72Scan Te6edf3for Te6edf3GATT Tff7b72service Te6edf3UUID
Te6edf3BLETff7b72-->>Te6edf3AppTff7b72: Te6edf3Device Te6edf3discovered

Te6edf3Note Te6edf3over Te6edf3AppTff7b72: Te6edf3Phase T79c0ff2Tff7b72: Te6edf3Connect
Te6edf3AppTff7b72->>Te6edf3DeviceTff7b72: Te6edf3BLE Te6edf3Connect
Te6edf3DeviceTff7b72-->>Te6edf3AppTff7b72: Te6edf3Device Te6edf3name Tb4b4b4(Te6edf3confirmationTb4b4b4)

Te6edf3Note Te6edf3over Te6edf3AppTb4b4b4, Te6edf3DeviceTff7b72: Te6edf3Phase T79c0ff3Tff7b72: Te6edf3Network Te6edf3List
Te6edf3AppTff7b72->>Te6edf3DeviceTff7b72: Te6edf3GetNetworks Te6edf3command
Te6edf3DeviceTff7b72-->>Te6edf3AppTff7b72: Te6edf3WiFi Te6edf3networks Tb4b4b4(Te6edf3deduplicated Te6edf3by Te6edf3SSIDTb4b4b4)

Te6edf3Note Te6edf3over Te6edf3AppTb4b4b4, Te6edf3DeviceTff7b72: Te6edf3Phase T79c0ff4Tff7b72: Te6edf3Provision
Te6edf3AppTff7b72->>Te6edf3DeviceTff7b72: Te6edf3ConnectTb4b4b4(Te6edf3SSIDTb4b4b4, Te6edf3passwordTb4b4b4)
Te6edf3DeviceTff7b72-->>Te6edf3AppTff7b72: Te6edf3NetworkingStatus Te6edf3response
Te6edf3AppTff7b72->>Te6edf3DeviceTff7b72: Te6edf3Disconnect Te6edf3BLE


Key Classes

• T383838WifiProvisionViewModel.kt: MVI state machine with 6 phases and SSID deduplication.
• T383838WifiProvisionScreen.kt: Material 3 Expressive single-screen UI with Crossfade transitions.
• T383838NymeaWifiService.kt: BLE service layer — connect, scan networks, provision, close.
• T383838NymeaPacketCodec.kt: Chunked BLE packet encoder/decoder with reassembly.
• T383838NymeaProtocol.kt: JSON serialization for Nymea network manager commands and responses.
• T383838ProvisionStatusCard.kt: Inline status feedback card (idle/success/failed) with Material 3 colors.

Served by rngit 1.5.0 - Generated in 0.12s